import pandas as pd
import re

# 数据清洗函数
def clean_item_data(df):
    # 清理空值
    df = df.dropna()
    return df

def clean_user_data(df):
    # 清理空值
    df = df.dropna()

    # 排除异常的行为类型
    valid_behavior_types = [1, 2, 3, 4]
    df = df[df['behavior_type'].isin(valid_behavior_types)]

    # 排除异常的时间格式
    time_pattern = re.compile(r'^\d{4}-\d{2}-\d{2} \d{2}$')
    df = df[df['time'].apply(lambda x: bool(time_pattern.match(str(x))))]

    return df

# 从文件读取数据
try:
    item_df = pd.read_csv('tianchi_fresh_comp_train_item.csv')
    user_df = pd.read_csv('tianchi_fresh_comp_train_user.csv')
except FileNotFoundError:
    print("文件未找到，请检查文件路径和文件名是否正确。")
else:
    # 执行数据清洗
    cleaned_item_df = clean_item_data(item_df)
    cleaned_user_df = clean_user_data(user_df)

    # 保存清洗后的数据到新的CSV文件
    cleaned_item_df.to_csv('cleaned_item_data.csv', index=False)
    cleaned_user_df.to_csv('cleaned_user_data.csv', index=False)

    print("数据清洗完成，清洗后的数据已保存到本地。")